package com.itlong.cloud.sdkv3.service;

import com.itlong.cloud.POJO.DTO.sdk.v3.CallElevatorDTO;
import com.itlong.cloud.POJO.VO.SDKMessageV3;
import com.itlong.cloud.POJO.VO.sdk.v3.hw.CancelTravelWrap;

import java.util.List;
import java.util.Map;

public interface ITaskService {

    String getElevatorLockKey(String deviceUnique);

    boolean checkElevator(String deviceUnique, long n, long timeout);//判断自增后>n

    String getElevatorKey(String deviceUnique);

    boolean hasElevatorKey(String deviceUnique);

    Map<Object, Object> getElevatorData(String deviceUnique);

    void clearElevatorLockKey(String deviceUnique);

    void setElevatorData(String robotId, String deviceUnique, boolean isYQK);

    String getTaskKey(String robotId);

    boolean hasTaskKey(String robotId);

    void setTaskData(CallElevatorDTO callElevatorDTO);

    void updateTaskData(String robotId, String hkey, String hvalue);

    Map<Object, Object> getTaskData(String robotId);

    boolean setExpire(String key, long timeout);

    SDKMessageV3 allowOpenDoor(String robotId, String deviceUnique, int effectiveTimeInt, String position, String requestId);

    void huaWeiCallback(String deviceUnique, Map<String, Object> map);

    String getElevator2ControllerKey(String deviceUnique);

    void addTaskListItem(String robotId, String item);

    void clearTask(int reason, String robotId, String deviceUnique);

    List<String> commandForApi(List<String> list);

    boolean allowRequest(String robotId);

    CancelTravelWrap makeCancelTravelWrap(String requestId, String deviceId, String robotId, String snr);

}